Robot and other multi-axis manipulator systems are used in an increasing number of industrial and commercial applications to perform precise and repetitive movements with a minimum of human intervention. For example, robots are used to apply spray paint to automobile door panels, to weld components together, and the like. Properly programmed robots are highly repeatable and reliable.
Robot systems typically include a robot and a computer-based controller. Commonly used six-axis industrial robots include an arm assembly having one end mounted to a base, and a wrist on the opposite end. A grasping mechanism configured to receive the tool or other workpiece to be moved by the robot is mounted to the wrist. The grasping mechanism and workpiece, or whatever devices are mounted to the robot wrist, are together known generally as an end effector. The computer-based robot system controller is programmed with a robot drive program. When executed by the controller, motion-control program segments of the drive program cause the robot arm assembly and wrist to drive the end effector through a predetermined or desired path of motion with respect to a workstation.
The robot system controller must be programmed with the motion-control program segments. A number of known programming techniques are typically used for this purpose, including the teach pendant, lead-through, kinematic model and computer simulation methods.
There are disadvantages with each of these known programming techniques. For example, the teach pendant programming method can be relatively slow and inefficient. Because it is performed on-line with the actual robot to be programmed, the teach pendant programming method results in robot down time and associated productivity losses. The lead-through programming methods require a technician to be in close proximity to the robot, so they are typically not used with heavy or high-powered robots. The kinematic programming methods are robot specific and require a separate arm for each type of robot being programmed. The computer simulation programming methods can be slow and inefficient to use. It is also difficult to accurately program a robot to move about a desired three-dimensional path using this method.
There is a continuing need for improved robot programming systems. In particular, there is a need for improved programming methods that minimize the amount of robot down time and associated lost productivity. The robot programming methods should be capable of efficiently and accurately generating and optimizing motion-control programs. Programming methods of this type capable of efficiently and accurately generating path-synchronized data would also be useful.